package regex;
/*
   正则表达式数量词：
       Greedy 数量词
       X?      X，一次或一次也没有
       X*      X，零次或多次   //一次属于多次的范围
       X+      X，一次或多次
       X{n}    X，恰好 n 次
       X{n,}   X，至少 n 次
       X{n,m}  X，至少 n 次，但是不超过 m 次

 */
public class RegexDemo05 {
    public static void main(String[] args) {
        //method01();
        //method02();
        //method03();
        //method04();
        //method05();
        System.out.println("aa".matches("a{1,}"));//true
        System.out.println("".matches("a{1,}"));//false
        System.out.println("aaaa".matches("a{4,6}"));//true
        System.out.println("aaaaaaaa".matches("a{4,6}"));//false
    }

    private static void method05() {
        System.out.println("aaaa".matches("a{4}"));//true
    }

    private static void method04() {
        System.out.println("aaa".matches("a+"));//true   a出现一次或多次
        System.out.println("".matches("a+"));//false
        System.out.println("abb".matches("a+b+"));//true
    }

    private static void method03() {
        System.out.println("a".matches("a*"));//true  a出现0次或多次，一次也叫多次
        System.out.println("aa".matches("a*"));//true
        System.out.println("".matches("a*"));//true
    }

    private static void method02() {
        System.out.println("a".matches("a?"));//a出现1次或0此   true
        System.out.println("b".matches("a?"));//false
        System.out.println("aa".matches("a?"));//false
    }

    private static void method01() {
        //要求一个字符串有10位，并且每一位都是小写字母
        //[a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z]
        System.out.println("abcdefgiuyp".matches("[a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z]"));//true
        System.out.println("abcdefgiu1p".matches("[a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z]"));//false
    }


}
